An optical network refers to a network based on optical technologies and, for example, using optical fibers as transmission medium. An all-optical network is a communication network that transports and routes signals completely in the optical domain. Such a network uses optical components such as optical switches and amplifiers connected by optical fibers. Most optical networks implement optical-electrical-optical (OEO) switches, which convert photons (optical signals) from the input side to electrons or electrical signals internally to perform the switching or processing, and then convert back to photons (optical signals) on the output side for the next leg of the transmission. The optical-to-electrical and electrical-to-optical conversions require extra power, creating extra burdens on the heat dissipation systems that are critical to the proper functioning of complex, high-capacity broadband routers and switches located in data centers. In addition, delays are introduced as electrical signals are moved up the protocol stack and processed by software or firmware. An all-optical fiber-optic switching device maintains the signal as light from input to output, thereby avoiding OEO conversions. Optical switches may separate signals at different wavelengths and direct them to different ports.
Considering the amount of data carried by optical fibers in optical networks, a loss or failure of even a single link could create a huge impact in servicing users. For instance, a link failure may occur as a result of the failure of a component such as the transmitter, the receiver, or the transmission medium (e.g., the fiber), etc. Therefore, it is highly desirable that an optical network be fault-tolerant. Conventional optical networks use redundant protection fiber links to protect against working link failures. However, installing and maintaining extra protection links is costly. For instance, conventional multicast network protection is achieved by having the central source node include parallel working and protection communication paths to nodes. The paths are used to send these nodes protection copies of the independent digital broadcast signals from the source nodes. These parallel communication paths from the central node are expensive, requiring separate hardware transmitters, separate receivers, and separate communication channels on the transmission medium.
In a communication network, nodes (e.g., computers, routers, or like) can act as relay nodes in which the nodes pass on information from a source node to other nodes until the information reaches the destination node. Network coding allows performing computations on the data received at intermediate network nodes before passing on the result of that computation. That is, rather than simply forwarding the data, the intermediate network nodes may combine several input packets or data streams, for instance, as a combination of previously received information, into one or several output packets or data streams.
Currently existing or known fault-tolerant network designs do not use the concept of network coding, in which information is distributed spatially on common communication channels. The focus of research and design in the fault-tolerant network arena has typically been with the concept that information must be carried in channels separated physically or spectrally, or information can be combined into one channel only if it is separated temporally such as with queuing in packet networks.